@@ -556,3 +556,52 @@ def statistic_consumer(request): |
||
| 556 | 556 |
'model_logs': model_logs, |
| 557 | 557 |
'province_logs': province_logs, |
| 558 | 558 |
}) |
| 559 |
+ |
|
| 560 |
+def record_consumer(request): |
|
| 561 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
|
| 562 |
+ admin_id = request.POST.get('admin_id', '')
|
|
| 563 |
+ start_time = request.POST.get('start_time', '')
|
|
| 564 |
+ end_time = request.POST.get('end_time', '')
|
|
| 565 |
+ model_name = request.POST.get('model_name', '')
|
|
| 566 |
+ phone = request.POST.get('phone', '')
|
|
| 567 |
+ |
|
| 568 |
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID: |
|
| 569 |
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH) |
|
| 570 |
+ |
|
| 571 |
+ try: |
|
| 572 |
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) |
|
| 573 |
+ except AdministratorInfo.DoesNotExist: |
|
| 574 |
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) |
|
| 575 |
+ |
|
| 576 |
+ logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, model_uni_name__contains=model_name, phone__contains=phone) |
|
| 577 |
+ |
|
| 578 |
+ logs = [log.admindata for log in logs] |
|
| 579 |
+ |
|
| 580 |
+ return response(200, 'Get Consumer Record Success', u'获取消费者销售记录成功', data={
|
|
| 581 |
+ 'logs': logs |
|
| 582 |
+ }) |
|
| 583 |
+ |
|
| 584 |
+def record_sale(request): |
|
| 585 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
|
| 586 |
+ admin_id = request.POST.get('admin_id', '')
|
|
| 587 |
+ start_time = request.POST.get('start_time', '')
|
|
| 588 |
+ end_time = request.POST.get('end_time', '')
|
|
| 589 |
+ model_name = request.POST.get('model_name', '')
|
|
| 590 |
+ clerk_name = request.POST.get('clerk_name', '')
|
|
| 591 |
+ distributor_name = request.POST.get('distributor_name', '')
|
|
| 592 |
+ |
|
| 593 |
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID: |
|
| 594 |
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH) |
|
| 595 |
+ |
|
| 596 |
+ try: |
|
| 597 |
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) |
|
| 598 |
+ except AdministratorInfo.DoesNotExist: |
|
| 599 |
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) |
|
| 600 |
+ |
|
| 601 |
+ logs = SaleclerkSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, test_sn=False, model_uni_name__contains=model_name, clerk_name__contains=clerk_name, distributor_name__contains=distributor_name) |
|
| 602 |
+ |
|
| 603 |
+ logs = [log.admindata for log in logs] |
|
| 604 |
+ |
|
| 605 |
+ return response(200, 'Get Sale Record Success', u'获取销售员销售记录成功', data={
|
|
| 606 |
+ 'logs': logs |
|
| 607 |
+ }) |
@@ -309,6 +309,9 @@ urlpatterns += [ |
||
| 309 | 309 |
|
| 310 | 310 |
url(r'^admin/dashboard$', admin_views.dashboard, name='dashboard'), |
| 311 | 311 |
url(r'^admin/statistic/consumer$', admin_views.statistic_consumer, name='statistic_consumer'), |
| 312 |
+ |
|
| 313 |
+ url(r'^admin/record/consumer$', admin_views.record_consumer, name='record_consumer'), |
|
| 314 |
+ url(r'^admin/record/sale$', admin_views.record_sale, name='record_sale'), |
|
| 312 | 315 |
] |
| 313 | 316 |
|
| 314 | 317 |
urlpatterns += [ |
@@ -2,7 +2,8 @@ |
||
| 2 | 2 |
|
| 3 | 3 |
from django.db import models |
| 4 | 4 |
from django.utils.translation import ugettext_lazy as _ |
| 5 |
-from django_models_ext import BaseModelMixin, upload_path |
|
| 5 |
+from django_models_ext import BaseModelMixin, upload_path, upload_file_path, upload_file_url |
|
| 6 |
+from TimeConvert import TimeConvert as tc |
|
| 6 | 7 |
|
| 7 | 8 |
from mch.models import ModelInfo |
| 8 | 9 |
|
@@ -124,3 +125,30 @@ class SaleclerkSubmitLogInfo(BaseModelMixin): |
||
| 124 | 125 |
|
| 125 | 126 |
def __unicode__(self): |
| 126 | 127 |
return unicode(self.pk) |
| 128 |
+ |
|
| 129 |
+ @property |
|
| 130 |
+ def image_path(self): |
|
| 131 |
+ return upload_file_path(self.image) |
|
| 132 |
+ |
|
| 133 |
+ @property |
|
| 134 |
+ def image_url(self): |
|
| 135 |
+ return upload_file_url(self.image) |
|
| 136 |
+ |
|
| 137 |
+ @property |
|
| 138 |
+ def admindata(self): |
|
| 139 |
+ return {
|
|
| 140 |
+ 'pk': self.pk, |
|
| 141 |
+ 'model_name': self.model_name, |
|
| 142 |
+ 'model_uni_name': self.model_uni_name, |
|
| 143 |
+ 'code': self.code, |
|
| 144 |
+ 'trackingNo': self.trackingNo, |
|
| 145 |
+ 'is_staff_delete': self.is_staff_delete, |
|
| 146 |
+ 'code_version': self.code_version, |
|
| 147 |
+ 'clerk_name': self.clerk_name, |
|
| 148 |
+ 'distributor_name': self.distributor_name, |
|
| 149 |
+ 'remark': self.remark, |
|
| 150 |
+ 'dupload': self.dupload, |
|
| 151 |
+ 'has_scan': self.has_scan, |
|
| 152 |
+ 'image': self.image_url, |
|
| 153 |
+ 'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'), |
|
| 154 |
+ } |
@@ -695,6 +695,20 @@ class ConsumeInfoSubmitLogInfo(BaseModelMixin): |
||
| 695 | 695 |
'dupload': self.dupload, |
| 696 | 696 |
'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'), |
| 697 | 697 |
} |
| 698 |
+ |
|
| 699 |
+ @property |
|
| 700 |
+ def admindata(self): |
|
| 701 |
+ return {
|
|
| 702 |
+ 'pk': self.pk, |
|
| 703 |
+ 'user_id': self.user_id, |
|
| 704 |
+ 'model_name': self.model_name, |
|
| 705 |
+ 'model_uni_name': self.model_uni_name, |
|
| 706 |
+ 'serialNo': self.serialNo, |
|
| 707 |
+ 'phone': self.phone, |
|
| 708 |
+ 'code_version': self.code_version, |
|
| 709 |
+ 'dupload': self.dupload, |
|
| 710 |
+ 'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'), |
|
| 711 |
+ } |
|
| 698 | 712 |
|
| 699 | 713 |
|
| 700 | 714 |
class ActivityInfo(BaseModelMixin): |